/*
 * Object.h
 *
 *  Created on: 2011-03-30
 *      Author: jacek
 */

#ifndef OBJECT_H_
#define OBJECT_H_
#include "Component.h"
#include "ComponentList.h"
#include "Event.h"

using namespace std;
class Object : public Component
{
protected:
	uint64 id;
 	bool InsideEvent(uint64 type);
public:
 	Component* mainParent;
	Object(uint64 ID);
	uint64 GetId()const { return id;}
	ComponentList components;
	virtual void Updata(Event event);
	virtual void Intialization();
	virtual void Dispose();
	virtual void RegisterComponent(Component* component);
	virtual void UnregisterComponent(Component* component);
	virtual void SendEvent(Event event);
	virtual ~Object();
};

#endif /* OBJECT_H_ */
